Open
Conversation
…ts page to deal with insights across semesters and sections both, added logic to attach supercourses to any courses that are updated or created
…into 256-through-semester-insights
…into 256-through-semester-insights
…into 256-through-semester-insights
Collaborator
|
I want to convert this to a draft but i can't since i'm not the author :( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge PR #251 before this one, as it branches from that implementation.
Note
Hello, future developer. I am the developer who opened this PR and the corresponding issue. As my directed study is now coming to an end, I will not be able to finish this feature off for review. As such, I would like to take the opportunity in this description to thoroughly communicate everything that's been done and yet to be done.
Description
This feature adds onto the existing insights implementation to allow administrators and professors to see how their course's statistics might compare to the same course from a previous semester or another section of the same term. This would also allow these users to view the general trends over many semesters (once we have more). Below, I outlined the steps I have already taken and the steps I would have taken to finish this feature, given more time. I hope this can serve more as a useful guide than an instruction manual, so please feel free to implement this feature differently if you truly think that is best.
To facilitate this in the backend, the idea is to use a new table called "super_course_model" and add foreign keys to all existing courses so that there exists an identifier that for each course's clones (as well as non-clones that are still of the same course).
After the creation of this table, modifications to the clone implementation of the backend are necessary to automatically attach clones to the same supercourse as the original. Modifications also need to be made to the course creation and modification endpoints to generate super-course entries for newly created courses.
course.service.tsfor the cloneCourses function andorganization.controller.tsfor the course creation and modification routes which query to update the super-course table for my rough implementation to update production. Both routes are in the/serverdirectory (the backend service).Then, modifications need to be made to the course settings page to allow select trusted users (ie, organization admin) to change a course's supercourse should the need arise.
Now, you can focus on the insights themselves, using the supercourse model to query for any and all course entries of the same course.
insight-objects.tsin the/serverdirectory (the backend service).Once the desired chart objects are created, you can move onto the frontend service and ensure that the charts render as desired on the page.
index.tsfile of the common package, and then modify the insightMenuItems object inInsightsPageMenu.tsxof the frontend to match).Finally, tests will have to be written to test the super-course interactions in the backend for cloning, creating, and modifying courses. Also, write tests to verify the results of the new insights you have created.
Other Tips
PAT TODO:comments throughout these files. These are no different than normal TODOs other than that they are relevant to this PR and should be addressed before this PR is merged. They served as personal reminders for lapses of less development where I may have forgotten what I was working on.Closes #256
Type of change
yarn installHow Has This Been Tested?
Please describe how you tested this PR (both manually and with tests)
Provide instructions so we can reproduce.
Checklist: